﻿package com.thorqq.magictimer.util;

import android.content.Context;
import android.graphics.Typeface;


/**
 * Android大小单位转换工具类
 * 
 * @author wader
 * 
 */
public class DisplayUtil
{
    static float mScaledDensity = -1;
    static Typeface mNumTypeFase;
    
    //初始化
    public static void init(Context context)
    {
        mScaledDensity = context.getResources().getDisplayMetrics().scaledDensity;
        
        mNumTypeFase = Typeface.createFromAsset (context.getAssets() , "fonts/Clockopia.ttf");        

    }
    
    /**
     * 将px值转换为dip或dp值，保证尺寸大小不变
     * 
     * @param pxValue
     * @param scale
     *            （DisplayMetrics类中属性density）
     * @return
     */
    public static int px2dip(float pxValue, float scale)
    {
        return (int) (pxValue / scale + 0.5f);
    }

    /**
     * 将dip或dp值转换为px值，保证尺寸大小不变
     * 
     * @param dipValue
     * @param scale
     *            （DisplayMetrics类中属性density）
     * @return
     */
    public static int dip2px(float dipValue, float scale)
    {
        return (int) (dipValue * scale + 0.5f);
    }

    /**
     * 将px值转换为sp值，保证文字大小不变
     * 
     * @param pxValue
     * @param fontScale
     *            （DisplayMetrics类中属性scaledDensity）
     * @return
     */
    public static int px2sp(float pxValue, float fontScale)
    {
        return (int) (pxValue / fontScale + 0.5f);
    }

    /**
     * 将sp值转换为px值，保证文字大小不变
     * 
     * @param spValue
     * @param fontScale
     *            （DisplayMetrics类中属性scaledDensity）
     * @return
     */
    public static int sp2px(float spValue, float fontScale)
    {
        return (int) (spValue * fontScale + 0.5f);
    }

    public static int sp2px(float spValue)
    {
        return (int) (spValue * mScaledDensity + 0.5f);
    }
    
    public static float getScaledDensity()
    {
        return mScaledDensity;
    }
    
    public static Typeface getNumTypeFace()
    {
        return mNumTypeFase;
    }

}